package equals_.exercise01;

public class Person {
   private String name;
   private int age;
   private char gender;

   public Person(String name, int age, char gender) {
      this.name = name;
      this.age = age;
      this.gender = gender;
   }

   public String getName() {
      return name;
   }

   public void setName(String name) {
      this.name = name;
   }

   public int getAge() {
      return age;
   }

   public void setAge(int age) {
      this.age = age;
   }

   public char getGender() {
      return gender;
   }

   public void setGender(char gender) {
      this.gender = gender;
   }

   //重写equals方法,判断两个对象的内容是否相等
   //1.判断是否为同一个对象-->true
   //2.判断传进来的对象是否是Person，是才比较，不是就返回false（人不能和狗比）
   //3.是人就向下转型,比较属性
   @Override
   public boolean equals(Object obj) {
    if(this == obj){//指向同一个对象相同
       return true;
    }else if(obj instanceof Person){
       //传进来的对象obj和调用方法的对象是同一个类型或是其子类型
       //为真则判断

       //进行向下转型,将obj的类型转成Person类型，才能得到obj的属性
       Person p = (Person)obj;
       return this.name.equals(p.name) && this.age == p.age && this.gender == p.gender;
       //          字符类型重写equals方法
    }
    return false;//为假
   }
}
